﻿using ModelGymTauro;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ModelGymTauro
{
    public abstract class Persona
    {
        private int id;
        public int Id
        {
            get { return id; }
            set { id = value; }
        }

        private byte[] foto;

        public byte[] Foto
        {
            get { return foto; }
            set { foto = value; }
        }
        private char sexo;

        private string urlFoto;

        public string UrlFoto
        {
            get { return urlFoto; }
            set { urlFoto = value; }
        }
        public char Sexo
        {
            get { return sexo; }
            set { sexo = value; }
        }


        private String dni;
        public String Dni
        {
            get { return dni; }
            set { dni = value; }
        }

        private String nombre;
        public String Nombre
        {
            get { return nombre; }
            set { nombre = value; }
        }

        private String apellido;
        public String Apellido
        {
            get { return apellido; }
            set { apellido = value; }
        }

        private DateTime fechaNacimiento;
        public DateTime FechaNacimiento
        {
            get { return fechaNacimiento; }
            set { fechaNacimiento = value; }
        }

        private String telefono;
        public String Telefono
        {
            get { return telefono; }
            set { telefono = value; }
        }

        private String direccion;
        public String Direccion
        {
            get { return direccion; }
            set { direccion = value; }
        }

        private String correo;
        public String Correo
        {
            get { return correo; }
            set { correo = value; }
        }

        private String password;

        public String Password
        {
            get { return password; }
            set { password = value; }
        }
    }

    public class Deportista : Persona
    {
        private DateTime fechaRegistro;
        public DateTime FechaRegistro
        {
            get { return fechaRegistro; }
            set { fechaRegistro = value; }
        }

        private String estado;

        public String Estado
        {
            get { return estado; }
            set { estado = value; }
        }

    }

    public class Empleado : Persona
    {
        private DateTime fechaIngreso;
        public DateTime FechaIngreso
        {
            get { return fechaIngreso; }
            set { fechaIngreso = value; }
        }

        private String estado;

        public String Estado
        {
            get { return estado; }
            set { estado = value; }
        }



        private String tipoEmpleado;

        public String TipoEmpleado
        {
            get { return tipoEmpleado; }
            set { tipoEmpleado = value; }
        }
    }

    public class Rutina
    {
        private int id;
        public int Id
        {
            get { return id; }
            set { id = value; }
        }

        private String nombre;
        public String Nombre
        {
            get { return nombre; }
            set { nombre = value; }
        }

        private String descripcion;
        public String Descripcion
        {
            get { return descripcion; }
            set { descripcion = value; }
        }

        private List<LineaRutina> listaLineaRutina;

    }

    public class DeportistaRutina
    {
        private int id;

        public int Id
        {
            get { return id; }
            set { id = value; }
        }
        private DateTime fechaInicio;

        public DateTime FechaInicio
        {
            get { return fechaInicio; }
            set { fechaInicio = value; }
        }
        private DateTime fechaFin;

        public DateTime FechaFin
        {
            get { return fechaFin; }
            set { fechaFin = value; }
        }
        private Rutina rutina;

        public Rutina Rutina
        {
            get { return rutina; }
            set { rutina = value; }
        }
        private Empleado entrenador;

        public Empleado Entrenador
        {
            get { return entrenador; }
            set { entrenador = value; }
        }

        private Deportista deportista;
        public Deportista Deportista
        {
            get { return deportista; }
            set { deportista = value; }
        }
    }

    public class Ejercicio
    {
        private int id;

        public int Id
        {
            get { return id; }
            set { id = value; }
        }
        private String nombre;

        public String Nombre
        {
            get { return nombre; }
            set { nombre = value; }
        }
        private String descripcion;

        public String Descripcion
        {
            get { return descripcion; }
            set { descripcion = value; }
        }
        private List<Maquina> listaMaquina;

        public List<Maquina> ListaMaquina
        {
            get { return listaMaquina; }
            set { listaMaquina = value; }
        }

        private String idMaquina;

        
        }
    

    public class Maquina
    {
        private int id;

        public int Id
        {
            get { return id; }
            set { id = value; }
        }
        private String nombre;

        public String Nombre
        {
            get { return nombre; }
            set { nombre = value; }
        }
        private String tipo;

        public String Tipo
        {
            get { return tipo; }
            set { tipo = value; }
        }
        private String estado;

        public String Estado
        {
            get { return estado; }
            set { estado = value; }
        }
        private String descripcion;

        public String Descripcion
        {
            get { return descripcion; }
            set { descripcion = value; }
        }

    }

    public class LineaRutina
    {
        private int cantSeries;

        public int CantSeries
        {
            get { return cantSeries; }
            set { cantSeries = value; }
        }
        private int cantxSerie;

        public int CantxSerie
        {
            get { return cantxSerie; }
            set { cantxSerie = value; }
        }
        private Ejercicio ejercicio;

        public Ejercicio Ejercicio
        {
            get { return ejercicio; }
            set { ejercicio = value; }
        }
    }

    public class Cita
    {
        private int id;

        public int Id
        {
            get { return id; }
            set { id = value; }
        }
        private DateTime fecha;

        public DateTime Fecha
        {
            get { return fecha; }
            set { fecha = value; }
        }
        private String estado;

        public String Estado
        {
            get { return estado; }
            set { estado = value; }
        }
        private Empleado nutricionista;

        public Empleado Nutricionista
        {
            get { return nutricionista; }
            set { nutricionista = value; }
        }

        private Deportista deportista;
    }

    public class Medida
    {
        private int id;

        public int Id
        {
            get { return id; }
            set { id = value; }
        }
        private double peso;

        public double Peso
        {
            get { return peso; }
            set { peso = value; }
        }
        private double brazos;

        public double Brazos
        {
            get { return brazos; }
            set { brazos = value; }
        }
        private double cintura;

        public double Cintura
        {
            get { return cintura; }
            set { cintura = value; }
        }
        private double muslos;

        public double Muslos
        {
            get { return muslos; }
            set { muslos = value; }
        }
        private Cita cita;

        public Cita Cita
        {
            get { return cita; }
            set { cita = value; }
        }

        private Deportista deportista;
    }

    public class Dieta
    {
        private int id;

        public int Id
        {
            get { return id; }
            set { id = value; }
        }
        private int calorias;

        public int Calorias
        {
            get { return calorias; }
            set { calorias = value; }
        }
        private int proteinas;

        public int Proteinas
        {
            get { return proteinas; }
            set { proteinas = value; }
        }
        private int carbohidratos;

        public int Carbohidratos
        {
            get { return carbohidratos; }
            set { carbohidratos = value; }
        }


        private String descripcion;

        public String Descripcion
        {
            get { return descripcion; }
            set { descripcion = value; }
        }

        private List<LineaDieta> lineaDietas;

        public List<LineaDieta> LineaDietas
        {
            get { return lineaDietas; }
            set { lineaDietas = value; }
        }
    }


    public class LineaDieta
    {
        private int id;

        public int Id
        {
            get { return id; }
            set { id = value; }
        }
        private String periodo;

        public String Periodo
        {
            get { return periodo; }
            set { periodo = value; }
        }
        private String descripcion;

        public String Descripcion
        {
            get { return descripcion; }
            set { descripcion = value; }
        }
    }


    public class DeportistaDieta
    {
        private int id;

        public int Id
        {
            get { return id; }
            set { id = value; }
        }
        private DateTime fechaInicio;

        public DateTime FechaInicio
        {
            get { return fechaInicio; }
            set { fechaInicio = value; }
        }
        private DateTime fechafin;

        public DateTime Fechafin
        {
            get { return fechafin; }
            set { fechafin = value; }
        }
        private Cita cita;

        public Cita Cita
        {
            get { return cita; }
            set { cita = value; }
        }

        private Deportista deportista;
    }

    public class Actividad
    {
        private int id;

        public int Id
        {
            get { return id; }
            set { id = value; }
        }
        private String nombre;

        public String Nombre
        {
            get { return nombre; }
            set { nombre = value; }
        }
        private String descripcion;

        public String Descripcion
        {
            get { return descripcion; }
            set { descripcion = value; }
        }
        private String estado;

        public String Estado
        {
            get { return estado; }
            set { estado = value; }
        }
        private int duracion;

        public int Duracion
        {
            get { return duracion; }
            set { duracion = value; }
        }
        private List<Clase> listaClase;

        public List<Clase> ListaClase
        {
            get { return listaClase; }
            set { listaClase = value; }
        }
    }

    public class Clase
    {
        private int id;

        public int Id
        {
            get { return id; }
            set { id = value; }
        }


        private String lugar;

        public String Lugar
        {
            get { return lugar; }
            set { lugar = value; }
        }
        private Empleado profesor;

        public Empleado Profesor
        {
            get { return profesor; }
            set { profesor = value; }
        }


        private List<ClaseDia> listaDia;

        public List<ClaseDia> ListaDia
        {
            get { return listaDia; }
            set { listaDia = value; }
        }
    }

    public class DeportistaClaseDia
    {
        private bool asistencia;

        public bool Asistencia
        {
            get { return asistencia; }
            set { asistencia = value; }
        }



        public int Id
        {
            get { return id; }
            set { id = value; }
        }
        private Deportista deportista;

        public Deportista Deportista
        {
            get { return deportista; }
            set { deportista = value; }
        }

        private int id;

        public int Id1
        {
            get { return id; }
            set { id = value; }
        }
    }

    public class ClaseDia
    {
        private int dia;

        public int Dia
        {
            get { return dia; }
            set { dia = value; }
        }




        private String lugar;


        

        public String Lugar
        {
          get { return lugar; }
          set { lugar = value; }
}private int hora;

        public int Hora
        {
            get { return hora; }
            set { hora = value; }
        }
        private List<DeportistaClaseDia> listaDeportista;

        public List<DeportistaClaseDia> ListaDeportista
        {
            get { return listaDeportista; }
            set { listaDeportista = value; }
        }
        private int id;

        public int Id
        {
            get { return id; }
            set { id = value; }
        }
    }

    public class Membresia
    {
        private int id;

        public int Id
        {
            get { return id; }
            set { id = value; }
        }
        private String nombre;

        public String Nombre
        {
            get { return nombre; }
            set { nombre = value; }
        }
        private String periodo;

        public String Periodo
        {
            get { return periodo; }
            set { periodo = value; }
        }
        private double costo;

        public double Costo
        {
            get { return costo; }
            set { costo = value; }
        }
        private String descripcion;

        public String Descripcion
        {
            get { return descripcion; }
            set { descripcion = value; }
        }
    }

    public class VentaMembresia
    {
        private int id;

        public int Id
        {
            get { return id; }
            set { id = value; }
        }
        private DateTime fechaRegistro;

        public DateTime FechaRegistro
        {
            get { return fechaRegistro; }
            set { fechaRegistro = value; }
        }
        private DateTime fechaInicio;

        public DateTime FechaInicio
        {
            get { return fechaInicio; }
            set { fechaInicio = value; }
        }
        private DateTime fechaFin;

        public DateTime FechaFin
        {
            get { return fechaFin; }
            set { fechaFin = value; }
        }
        private String estado;

        public String Estado
        {
            get { return estado; }
            set { estado = value; }
        }
        private Membresia membresia;

        public Membresia Membresia
        {
            get { return membresia; }
            set { membresia = value; }
        }
        private Empleado cajero;

        public Empleado Cajero
        {
            get { return cajero; }
            set { cajero = value; }
        }

        private Deportista deportista;
    }

    public class Producto
    {
        private int id;

        public int Id
        {
            get { return id; }
            set { id = value; }
        }
        private String nombre;

        public String Nombre
        {
            get { return nombre; }
            set { nombre = value; }
        }
        private String marca;

        public String Marca
        {
            get { return marca; }
            set { marca = value; }
        }
        private double precioVenta;

        public double PrecioVenta
        {
            get { return precioVenta; }
            set { precioVenta = value; }
        }
        private String tipo;

        public String Tipo
        {
            get { return tipo; }
            set { tipo = value; }
        }
        private int stock;

        public int Stock
        {
            get { return stock; }
            set { stock = value; }
        }
    }

    public class Promocion 
    {    public Producto producto;
        public Producto Producto
    {
        get { return producto; }
        set { producto = value; }
    }
    
        private int id;

        public int Id
        {
            get { return id; }
            set { id = value; }
        }
        private String descripcion;

        public String Descripcion
        {
            get { return descripcion; }
            set { descripcion = value; }
        }

        private String estado;

        public String Estado
        {
            get { return estado; }
            set { estado = value; }
        }


        private DateTime fechaInicio;

        public DateTime FechaInicio
        {
            get { return fechaInicio; }
            set { fechaInicio = value; }
        }
        private DateTime fechaFin;

        public DateTime FechaFin
        {
            get { return fechaFin; }
            set { fechaFin = value; }
        }
        private double descuento;

        public double Descuento
        {
            get { return descuento; }
            set { descuento = value; }
        }
    }



    public class Venta
    {
        private int id;

        public int Id
        {
            get { return id; }
            set { id = value; }
        }
        private DateTime fecha;

        public DateTime Fecha
        {
            get { return fecha; }
            set { fecha = value; }
        }
        private double subTotal;

        public double SubTotal
        {
            get { return subTotal; }
            set { subTotal = value; }
        }
        private double igv;

        public double Igv
        {
            get { return igv; }
            set { igv = value; }
        }
        private double total;

        public double Total
        {
            get { return total; }
            set { total = value; }
        }
        private Deportista deportista;

        public Deportista Deportista
        {
            get { return deportista; }
            set { deportista = value; }
        }
        private List<LineaVenta> listaLineaVenta;

        public List<LineaVenta> ListaLineaVenta
        {
            get { return listaLineaVenta; }
            set { listaLineaVenta = value; }
        }
        private Empleado cajero;

        public Empleado Cajero
        {
            get { return cajero; }
            set { cajero = value; }
        }
    }

    public class LineaVenta
    {
        private int id;

        public int Id
        {
            get { return id; }
            set { id = value; }
        }
        private Producto producto;

        public Producto Producto
        {
            get { return producto; }
            set { producto = value; }
        }
        private int cantidad;

        public int Cantidad
        {
            get { return cantidad; }
            set { cantidad = value; }
        }
        private double subTotal;

        public double SubTotal
        {
            get { return subTotal; }
            set { subTotal = value; }
        }
    }

    public class Cotizacion
    {
        private int id;

        public int Id
        {
            get { return id; }
            set { id = value; }
        }
        private String estado;

        public String Estado
        {
            get { return estado; }
            set { estado = value; }
        }
        private DateTime fechaSolicitud;

        public DateTime FechaSolicitud
        {
            get { return fechaSolicitud; }
            set { fechaSolicitud = value; }
        }
        private int total;

        public int Total
        {
            get { return total; }
            set { total = value; }
        }
        private Empleado solicitante;

        public Empleado Solicitante
        {
            get { return solicitante; }
            set { solicitante = value; }
        }
        private Proveedor proveedor;

        public Proveedor Proveedor
        {
            get { return proveedor; }
            set { proveedor = value; }
        }
        private OrdenCompra ordenCompra;

        public OrdenCompra OrdenCompra
        {
            get { return ordenCompra; }
            set { ordenCompra = value; }
        }
        private List<Lote> listaLote;

        public List<Lote> ListaLote
        {
            get { return listaLote; }
            set { listaLote = value; }
        }
    }

    public class Proveedor
    {
        private int id;

        public int Id
        {
            get { return id; }
            set { id = value; }
        }
        private String razonSocial;

        public String RazonSocial
        {
            get { return razonSocial; }
            set { razonSocial = value; }
        }
        private String ruc_dni;

        public String Ruc_dni
        {
            get { return ruc_dni; }
            set { ruc_dni = value; }
        }
        private String tipo;

        public String Tipo
        {
            get { return tipo; }
            set { tipo = value; }
        }
        private String telefono;

        public String Telefono
        {
            get { return telefono; }
            set { telefono = value; }
        }
        private String correo;

        public String Correo
        {
            get { return correo; }
            set { correo = value; }
        }
        private String direccion;

        public String Direccion
        {
            get { return direccion; }
            set { direccion = value; }
        }
        private DateTime fechaRegistro;

        public DateTime FechaRegistro
        {
            get { return fechaRegistro; }
            set { fechaRegistro = value; }
        }
        private String contacto;

        public String Contacto
        {
            get { return contacto; }
            set { contacto = value; }
        }
    }

    public class OrdenCompra
    {
        private int id;

        public int Id
        {
            get { return id; }
            set { id = value; }
        }
        private DateTime fechaPedido;

        public DateTime FechaPedido
        {
            get { return fechaPedido; }
            set { fechaPedido = value; }
        }
        private DateTime fechaEntrega;

        public DateTime FechaEntrega
        {
            get { return fechaEntrega; }
            set { fechaEntrega = value; }
        }
    }

    public class CotizacionProducto
    {
    }

    public class Lote
    {
        private int id;

        public int Id
        {
            get { return id; }
            set { id = value; }
        }
        private double costo;

        public double Costo
        {
            get { return costo; }
            set { costo = value; }
        }
        private Producto producto;

        public Producto Producto
        {
            get { return producto; }
            set { producto = value; }
        }
        private int cantidad;

        public int Cantidad
        {
            get { return cantidad; }
            set { cantidad = value; }
        }
    }

    public class Turno
    {
        private int id;

        public int Id
        {
            get { return id; }
            set { id = value; }
        }
        private int horaInicio;

        public int HoraInicio
        {
            get { return horaInicio; }
            set { horaInicio = value; }
        }
        private int horaFin;

        public int HoraFin
        {
            get { return horaFin; }
            set { horaFin = value; }
        }
        private List<EmpladoTurno> listaEmpleado;

        public List<EmpladoTurno> ListaEmpleado
        {
            get { return listaEmpleado; }
            set { listaEmpleado = value; }
        }
    }

    public class EmpladoTurno
    {
        private int id;

        public int Id
        {
            get { return id; }
            set { id = value; }
        }
        private List<ClaseDia> listaDia;

        public List<ClaseDia> ListaDia
        {
            get { return listaDia; }
            set { listaDia = value; }
        }
        private List<Empleado> empleado;

        public List<Empleado> Empleado
        {
            get { return empleado; }
            set { empleado = value; }
        }
    }
}
